package com.qf.controller;/*
 * @author     : XXX
 * @date       : 2022/5/27 14:17
 * @description: some description
 */

import com.qf.pojo.User;
import com.qf.service.UserService;
import com.qf.service.UserServiceImpl;
import com.qf.utils.StrUtils;
import org.apache.commons.beanutils.BeanUtils;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
@WebServlet("/long")
public class UserController extends  BaseServlet {
    public String login(HttpServletRequest request, HttpServletResponse response) {

        //1. 获取用户名参数
        String username = request.getParameter("username");
        //2. 获取用户密码参数
        String password = request.getParameter("password");
        //3. 获取用户验证码参数


        //5. 判断用户名, 密码, 验证码不为空, 如果为空重定向到登录页面
        if (!StrUtils.empty(username) || !StrUtils.empty(password)) {
            request.setAttribute("msg", "用户名, 密码不可以为空!");
            //跳转到登录页面
            return "forward:/login.jsp";
        }

        //7. 调用service完成用户名密码的校验
        UserService userService = new UserServiceImpl();
        User user = userService.login(username, password);

        //8. 判断用户名, 密码是否错误, 如果错误返回提示信息
        if (user == null) {
            request.setAttribute("msg", "用户名或者密码错误!");
            //跳转到登录页面
            return "forward:/login.jsp";
        }

        //9. 登录成功, 将用户信息放入tomcat的session会话中携带

        //11. 跳转到首页
        return "forward:/dangan.jsp";
    }
    public String register(HttpServletRequest request, HttpServletResponse response) throws Exception{
        //1. 获取页面传入的所有参数, key就是页面input框的name属性, value就是input框中输入的值
        Map<String, String[]> parameterMap = request.getParameterMap();

        //2. 将参数封装成User对象
        //创建用户对象
        User user = new User();
        //利用beanUtils工具类, 将map中的数据全部自动set到user对象中
        //使用要求: user对象的属性名必须和页面input框的name属性一致, 实体类必须实现Serializable序列化接口
        BeanUtils.populate(user, parameterMap);

        //3. 调用service, 将用户对象保存到mysql数据库的用户表中
        UserService userService = new UserServiceImpl();
        int count = userService.createUser(user);

        //4. 跳转到注册成功页面
        if (count > 0) {
            //注册成功
            return "redirect:/registerSuccess.jsp";
        } else {
            //注册失败
            return "redirect:/register.jsp";
        }
    }
}